package de.openkanban.server.dao;

import java.util.List;

import de.openkanban.server.domain.Activity;
import de.openkanban.server.domain.Kanban;
import de.openkanban.shared.util.StatusCodes;

/**
 * activity data access object api
 */
public interface ActivityDao {
	Activity createActivity(Activity activity);

	StatusCodes removeActivity(Activity activity);

	Activity updateActivity(Activity activity);

	Activity getActivity(Long activityId);

	Activity getActivityByKanbanId(Long kanbanId);

	List<Activity> getAll();

	List<Activity> getAllByBoardId(Long parentBoardId);

	Kanban addKanbanToActivity(Long parentActivityId, Kanban newKanban);

	Kanban moveKanbanToActivity(Long parentActivityId, Long kanbanId);
	
	List<Activity> getActivityRange(Long boardId, Long beginActivityId, Long endActivityId);

}
